/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package vo;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.*;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

@Entity
@Table(name = "categoria")
public class CategoriaVO implements Serializable{

    @Id
    @SequenceGenerator( name = "cod_categoria", sequenceName = "cod_categoria_seq",allocationSize = 1 )
    @GeneratedValue( strategy = GenerationType.SEQUENCE, generator="cod_categoria")
    @Column(name="cod_categoria", nullable = false)
    private int codCategoria;
    @Column (name="descricao")
    private String descricao;
    @Column (name="ativo")
    private boolean ativo;
    @OneToMany(mappedBy="categoria", fetch = FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
    private Collection <SubCategoriaVO> subCategoria;
    @OneToMany(mappedBy="categoria", fetch = FetchType.LAZY)
    @Cascade(CascadeType.SAVE_UPDATE)
    private Collection <ProdutoVO> produto;

    //Contrutor Vazio
    public CategoriaVO(){

    }

    //Construtor com Parâmetros
    public CategoriaVO(int codCategoria, String descricao){
        this.setCodCategoria(codCategoria);
        this.setDescricao(descricao);
        this.ativo=true;
    }

    //Métodos Get() e Set()
    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public int getCodCategoria() {
        return codCategoria;
    }

    public void setCodCategoria(int codCategoria) {
        this.codCategoria = codCategoria;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Collection<SubCategoriaVO> getSubCategoria() {
        return subCategoria;
    }

    public void setSubCategoria(Collection<SubCategoriaVO> subCategoria) {
        this.subCategoria = subCategoria;
    }

    public Collection<ProdutoVO> getProduto() {
        return produto;
    }

    public void setProduto(Collection<ProdutoVO> produto) {
        this.produto = produto;
    }
    
}
